package 第一周;

import java.util.Arrays;

/**
 * @author xhw
 * @date 2024/2/25
 */

public class 判断能否形成等差数列 {
    //给你一个数字数组 arr 。
    //
    //如果一个数列中，任意相邻两项的差总等于同一个常数，那么这个数列就称为 等差数列 。
    //
    //如果可以重新排列数组形成等差数列，请返回 true ；否则，返回 false 。
    //
    //
    //
    //示例 1：
    //
    //输入：arr = [3,5,1]
    //输出：true
    //解释：对数组重新排序得到 [1,3,5] 或者 [5,3,1] ，任意相邻两项的差分别为 2 或 -2 ，可以形成等差数列。
    //示例 2：
    //
    //输入：arr = [1,2,4]
    //输出：false
    //解释：无法通过重新排序得到等差数列。
    //
    //
    //提示：
    //
    //2 <= arr.length <= 1000
    //-10^6 <= arr[i] <= 10^6
    public static void main(String[] args) {
        //先排序，然后判断相邻两个数的差是否相等

        int[] arr1 = {3, 5, 1};
        int[] arr2 = {1, 2, 4};

        System.out.println(dengCha(arr1));
        System.out.println(dengCha(arr2));

        
    }

    private static boolean dengCha(int[] arrs) {
        //先排序
        Arrays.sort(arrs);
        //计算差值
        int diff = arrs[1] - arrs[0];
        for (int i = 2; i < arrs.length; i++) {
            if (arrs[i] - arrs[i - 1] != diff) {
                return false;
            }
        }
        return true;
    }
}
